package com.dms.modules.user.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dms.modules.user.entity.UserBrowseHistory;
import com.dms.modules.user.vo.UserBrowseHistoryVO;

public interface UserBrowseHistoryService extends IService<UserBrowseHistory> {
    
    /**
     * 添加浏览历史
     * @param userId 用户ID
     * @param productId 商品ID
     * @param categoryId 分类ID
     * @param stayDuration 停留时长（秒）
     * @return 是否成功
     */
    boolean addBrowseHistory(Long userId, Long productId, Long categoryId, Integer stayDuration);
    
    /**
     * 删除指定商品的浏览历史
     * @param userId 用户ID
     * @param productId 商品ID
     * @return 是否成功
     */
    boolean deleteProductBrowseHistory(Long userId, Long productId);
    
    /**
     * 清空用户的浏览历史
     * @param userId 用户ID
     * @return 是否成功
     */
    boolean clearBrowseHistory(Long userId);
    
    /**
     * 获取用户浏览历史列表
     * @param page 分页参数
     * @param userId 用户ID
     * @param categoryId 分类ID
     * @return 分页数据
     */
    IPage<UserBrowseHistory> list(Page<UserBrowseHistory> page, Long userId, Long categoryId);

    /**
     * 获取用户浏览历史列表（包含商品详情）
     * @param page 分页参数
     * @param userId 用户ID
     * @param categoryId 分类ID
     * @return 分页数据
     */
    IPage<UserBrowseHistoryVO> listWithProductInfo(Page<UserBrowseHistory> page, Long userId, Long categoryId);
} 